package com.zxy.ziems.server.device.modules;

/**
 * 通信信道 设备属性处理器
 * @author chdzq
 * @create 2023/4/10
 */
public interface DevicePropertyProcessor<T, R> {

    /**
     * 支持的协议类型 返回非空 为null 忽略 重复 忽略
     * @return deviceType
     */
    String supportProtocol();

    /**
     * 增加
     * @param config 配置
     * @param protocol 协议
     * @param dataTypeId 数据类型
     */
   void doBeforeEncodeAdvancedConfigActionTrigger(T config,
                                                  String protocol,
                                                  String deviceId,
                                                  String dataTypeId);

    /**
     * 获取额外信息
     * @param config 配置
     * @param protocol 协议
     * @param dataTypeId 数据类型
     */
    R doDecodeAdvancedConfig(T config,
                             String protocol,
                             String deviceId,
                             String dataTypeId);
}
